#pragma once

#include "../LevelElement.h"
#include "../PhysX.h"
class CubePhysX;
class NxShape;
class Character;
class PhysX;
class DX10ObjMesh;
class Character;

class Weapon : public LevelElement
{
public:

	Weapon(Level* pLevel);
	virtual ~Weapon(void);
	virtual void SetWeaponMesh(DX10ObjMesh* mesh);
	virtual void SetCharacter(Character* character);
	virtual void Tick(const InputState&  dTime) = NULL;
	virtual void Draw(const RenderContext* context, ID3D10ShaderResourceView* shadowdepthmap = 0) ;
	virtual void Initialize(ContentManager *pContentManager);
	virtual void Fire() = NULL;

protected:

	LevelElement* m_pObject;
	CubePhysX* m_pTrigger;
	bool m_Rotate;
	D3DXVECTOR3 m_Position;
	float m_yRot;
	int m_ID;
	PhysX* m_pPhysX;	
	DX10ObjMesh* m_Mesh;
	Character* m_Character;
};
